package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

import javax.swing.JButton;



import vista.*;
import modelo.*;
import controlador.*;

public class ControladorPrincipal implements ActionListener{
	
	/**
	 * @uml.property  name="vprincipal"
	 * @uml.associationEnd  multiplicity="(1 1)"
	 */
	private VistaPrincipal vprincipal;
	/**
	 * @uml.property  name="cpersonalizado"
	 * @uml.associationEnd  readOnly="true"
	 */
	private ControladorPersonalizado cpersonalizado;
	/**
	 * @uml.property  name="crecordb"
	 * @uml.associationEnd  readOnly="true"
	 */
	private ControladorRecordBasico crecordb;
	/**
	 * @uml.property  name="crecori"
	 * @uml.associationEnd  readOnly="true"
	 */
	private ControladorRecordIntermedio crecori;
	/**
	 * @uml.property  name="crecorda"
	 * @uml.associationEnd  readOnly="true"
	 */
	private ControladorRecordAvanzado crecorda;
	private JButton botones[][];
	private  String [][] elArray;
	
	public VistaPrincipal getVistaPrincipal() {
		return vprincipal;
	}

	public void setVistaPrincipal(VistaPrincipal vprincipal) {
		this.vprincipal = vprincipal;
	}

	public void verPantalla()
	{
		this.vprincipal.setLocationRelativeTo(null);
		this.vprincipal.setVisible(true);		
	}
	
	public ControladorPrincipal(){
		super();
		this.vprincipal = new VistaPrincipal();
		verPantalla();
		this.vprincipal.agregarListener(this);
	}
	
	public void actionPerformed(ActionEvent e){
		if (e.getActionCommand().equalsIgnoreCase("Basico")){
			 NivelBasico();
		}
		else if (e.getActionCommand().equalsIgnoreCase("Intermedio")){
			
			NivelIntermedio();
		}
		else if (e.getActionCommand().equalsIgnoreCase("Avanzado")){
			NivelAvanzado();
  
		}
		if (e.getActionCommand().equalsIgnoreCase("Personalizado..")){
			new ControladorPersonalizado();
		}
		else if (e.getActionCommand().equalsIgnoreCase("Record Basico")){
			new ControladorRecordBasico();
		}
		else if (e.getActionCommand().equalsIgnoreCase("Record Intermedio")){
			new ControladorRecordIntermedio();
		}
		else if (e.getActionCommand().equalsIgnoreCase("Record Avanzado")){
			new ControladorRecordAvanzado();
		}
		else if (e.getActionCommand().equalsIgnoreCase("Informacion del Sistema")){
			vprincipal.mostrarmensaje("MinasNOA2, Noelia, Omar, Ariana, Anna, Laboratorio II");
		}
		else if (e.getActionCommand().equalsIgnoreCase("Salir del Sistema")){
			vprincipal.mostrarmensaje("Vuelve a Jugar Pronto");
			vprincipal.setVisible(false);
		}
	}
	
	public void NivelBasico(){
		
		ModeloMina modelomina=new ModeloMina(10,10);
		modelomina.setMina(10);
		System.out.println("modelo: "+modelomina.getAlto());
		System.out.println("modelo: "+modelomina.getAncho());
		
		botones = new JButton [modelomina.getAncho()][modelomina.getAlto()];
		VistaBMinas vminas= new VistaBMinas(botones);
		elArray =new String [modelomina.getAncho()][modelomina.getAlto()];
		ControladorBMinas cminas = new ControladorBMinas(vminas,elArray,modelomina);
	}
	public void NivelIntermedio(){
		
		ModeloMina modelomina=new ModeloMina(16,16);
		modelomina.setMina(40);
		botones = new JButton [modelomina.getAncho()][modelomina.getAlto()];
		VistaBMinas vminas= new VistaBMinas(botones);
		elArray =new String [modelomina.getAncho()][modelomina.getAlto()];
		ControladorBMinas cminas = new ControladorBMinas(vminas,elArray,modelomina);
	}
	public void NivelAvanzado(){
		
		ModeloMina modelomina=new ModeloMina(22,22);
		modelomina.setMina(100);
		botones = new JButton [modelomina.getAncho()][modelomina.getAlto()];
		VistaBMinas vminas= new VistaBMinas(botones);
		elArray =new String [modelomina.getAncho()][modelomina.getAlto()];
		ControladorBMinas cminas = new ControladorBMinas(vminas,elArray,modelomina);
	}
	public static void main(String args[]) throws Exception {
		ControladorPrincipal cprincipal =new ControladorPrincipal();
	}

}
